docs(claude): document adapter TS/RS exemption + proactive-conversion rule#79
Merged
Merged
Conversation
… rule boj-server-cartridges had no .claude/CLAUDE.md. Adds one mirroring boj-server's format, recording: - The MCP/LSP adapter (34 .ts) + VSCode-host panel (3 .res) exemption as the estate's carved-out class (protocol glue vs TS-native SDKs), with the tools/*.ts (6) explicitly left in the convert-now bucket. Mirrors the hypatia path_allow_prefixes source of truth (owner to apply there). - The general estate rule: proactively convert .ts/.res -> AffineScript at the earliest opportunity, guarded by (1) portable-now only (MCP/LSP/ VSCode glue stays until bindings ship, per the js-to-affinescript doctrine) and (2) compile-verify + wire-first (no unbuilt .affine, no removing a working .ts for one that hasn't compiled). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1
🔍 Hypatia Security ScanFindings: 282 issues detected
View findings[
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/planner.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/types.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/rollback.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/rollback_test.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/planner_test.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/lsp_client.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/lsp_client_test.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/parser.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/integration_test.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/parser_test.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
hyperpolymath
marked this pull request as ready for review
July 9, 2026 23:32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
boj-server-cartridges had no
.claude/CLAUDE.md. This adds one (mirroringboj-server's format) that records two things:.ts(cartridges/**/adapter/**) and 3 VSCode-host panel.res(cartridges/**/panels/**) are the estate's carved-out class (protocol glue against TS-native SDKs), the same carve-outboj-serveralready documents for its 6 adapters.tools/*.ts(6) are explicitly not exempt — they're portable-now Deno CLI..ts/.res→ AffineScript at the earliest opportunity, guarded by portable-now only (MCP/LSP/VSCode glue stays until the AffineScript bindings ship, per thejs-to-affinescriptdoctrine) and compile-verify + wire-first (no unbuilt.affine; don't delete a working.tsfor one that hasn't compiled).Changes
.claude/CLAUDE.md: machine-readable pointer, language-policy summary, the general rule, the adapter/panel exemption table, and the docs-format note.Notes
path_allow_prefixesfield on hypatia'scicd_rules/typescript_detected+cicd_rules/rescript_detected—hyperpolymath/hypatiais outside this session's repo scope, so applying that rule change is owner-side work. This file is the human-readable mirror + rationale record, per estate convention.🤖 Generated with Claude Code
https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1
Generated by Claude Code